Real-time determination of delivery/shipping using multi-shipment rate cards

ABSTRACT

A shipping option cost matrix may be generated based on the postal address codes, the carrier transit time data and the shipment rate cards. Responsive to receiving an order, the generated shipping option cost matrix may be searched in real-time to determine least costly delivery option, based on order information, the order information comprising a scheduled fulfillment center, destination, expected delivery date and weight of a shipment.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 62/279,738, filed on Jan. 16, 2016, which is incorporated by reference herein in its entirety.

BACKGROUND

The present application relates generally to computers and computer applications, and more particularly to data analytics, omni-channel order fulfillment and determining shipping methods.

Package delivery cost is considered a variable operating cost for electronic retailers. Minimizing the delivery cost involves evaluating complex delivery options: for example, the retailer needs to first optimally choose a shipping method (Air or Ground) to meet the promised delivery dates, then choose a carrier (e.g., which particular postal service) to minimize shipment cost. For instance, from process flow perspective, a standard practice is to optimize the shipping method after the order information is known. From algorithmic perspective, either all of the shipping options are enumerated or an optimization model is built to optimize shipping cost. However, due to the complexity of the problem, finding an optimal option in real time is challenging. Yet, web sites that provide online purchasing capabilities should be able to process optimal solutions in shipping costs in real time so that, for example, a customer will not quit the check-out process due to long wait.

BRIEF SUMMARY

A method and system of determining a shipping option in real time may be provided. The method performed by one or more hardware processors running in a computer environment comprising a shared pool of configurable computing resources. The method, in one aspect, may include obtaining postal address codes designating postal zones from one or more storage devices. The method may also include obtaining carrier transit time data from one or more of the storage devices. The method may further include obtaining shipment rate cards from one or more of the storage devices. The method may also include generating a shipping option cost matrix based on the postal address codes, the carrier transit time data and the shipment rate cards. The method may also include, responsive to receiving order information, searching the generated shipping option cost matrix to determine least costly delivery option, based on the order information, the order information comprising a scheduled fulfillment center, destination, expected delivery date and weight of a shipment. The method may further include providing over a network the least costly delivery option.

A system, in one aspect, may include one or more hardware processors. One or more storage devices may be operatively coupled to one or more of the hardware processors. One or more of the hardware processors may be operable to obtain postal address codes designating postal zones from one or more of the storage devices. One or more of the hardware processors may be operable to obtain carrier transit time data from one or more of the storage devices. One or more of the hardware processors may be operable to obtain shipment rate cards from one or more of the storage devices. One or more of the hardware processors may be operable to generate a shipping option cost matrix based on the postal address codes, the carrier transit time data and the shipment rate cards. Responsive to receiving order information, one or more of the hardware processors may be operable to search the generated shipping option cost matrix to determine least costly delivery option, based on the order information, the order information comprising a scheduled fulfillment center, destination, expected delivery date and weight of a shipment. One or more of the hardware processors may be operable to provide over a network, the least costly delivery option.

A computer readable storage medium storing a program of instructions executable by a machine to perform one or more methods described herein also may be provided.

Further features as well as the structure and operation of various embodiments are described in detail below with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an overview of a shipping option pre-selection approach in one embodiment of the present disclosure.

FIG. 2 is a diagram illustrating shipping option pre-selection components in one embodiment of the present disclosure.

FIG. 3 is a flow diagram illustrating a method in one embodiment of the present disclosure.

FIGS. 4A-4B show a flow diagram illustrating a method of generating the shipping option cost matrix in one embodiment of the present disclosure.

FIG. 5 illustrates system components of the present disclosure in one embodiment.

FIG. 6 illustrates a schematic of an example computer or processing system that may implement a system that generates shipping options and/or allows for selecting least costly shipping options in real-time based on a pre-selected shipping options specified in the generated shipping option matrix in one embodiment of the present disclosure.

DETAILED DESCRIPTION

A system, method, computer program product, and technique may be presented that optimally determine shipping method, for example, providing a shipping option pre-selection approach. An embodiment of the system and/or method performs shipping method optimization before performing an order fulfillment optimization, reducing problem complexity and run time for each order, and thus improving the scalability of the system.

FIG. 1 illustrates an overview of a shipping option pre-selection approach in one embodiment of the present disclosure. From process flow perspective, the system and/or method in one embodiment of the present disclosure may preprocess the delivery transit time information and the shipment rate cards to determine the least costly carriers, given any combination of origin, destination, weight and the expected transit days. For example, shipping option pre-selection at 102 may generate optimal shipping option matrix for all scenarios at 104. When a system needs to determine the optimal shipping method and carriers for an order, the system may look up the pre-processed optimal options, e.g., the generated matrix, and choose the least costly shipping options. For instance, responsive to receiving an order at 106, shipping option may be selected from a pre-selected set of options and order fulfillment optimization may be performed at 108.

From algorithmic perspective, the pre-selection algorithm 104 generates new shipping matrix tables, which provide optimal options for not just one order, but all of the possible origin-destination-weight-transit days combinations.

The preprocessing in the system and/or method of the present disclosure in one embodiment may reduce the problem complexity and find an optimal shipping option in real time, for example, at the time when a decision needs to be made on order shipping method. In one aspect, the approach reduces the number of candidate shipping options and performs better than any numeration and optimization based shipping option selection approach.

FIG. 2 is a diagram illustrating shipping option pre-selection components in one embodiment of the present disclosure. One or more hardware processors may execute or perform the functionalities of the components described herein. The shipping option pre-selection of the present disclosure may be implemented as a cloud solution or on-premise solution. For example, shipping option pre-selection component or functionality 202 executing on one or more hardware processors may receive as input zipcode or like geographical region code data, carrier transit time or like data, and shipment rate cards or the like, for example, from a repository that stores such zipcode or zone code data or the like 204, a repository that stores carrier transit time data or the like 206, and a repository that stores shipment rate cards or the like 208. Table 1 shows an example of standard shipment rage cards 208.

TABLE 1 Weight Shipping (pounds Non- Method Carrier Zone (lbs.)) Residential Residential Standard Carrier X 6 10 7.92 6.88

Table 2 shows an example of a carrier transit day (or time) table or data 206.

TABLE 2 Shipping Origin Destination Shipment Carrier ID Method Zip Zip Zone Transit Days Carrier X Standard 94066 10603 8 5

The shipping option pre-selection component 202 generates a shipping option cost matrix, which is transmitted to a shipping option selection component or functionality 210. The shipping option selection component 210 may be running on one or more hardware processors and receives requests for orders. Responsive to receiving an order, the shipping option selection component 210 may obtain or retrieve the shipping option cost matrix, for example, from a storage device storing the pre-generated shipping option cost matrix, or for example, by requesting the shipping option cost matrix from the shipping option pre-selection component 202.

In one embodiment, shipping option pre-selection component 202 may also generate a shipping option detail matrix. The shipping option selection component 210 may employ the shipping option detail matrix received from the shipping option pre-selection component 202 to recover optimal shipping option details such shipping method and carrier as shown at 212.

The shipping option pre-selection component 202 preprocesses the shipment rate cards (e.g., shown in Table 1) and the delivery transit time information (e.g., shown in Table 2) to determine the least costly carriers, given any combination of origin, destination, weight and the expected transit days. In one embodiment, the shipping option pre-selection component 202 generates a shipping option cost matrix (e.g., shown in Table 3) and shipping option detail matrix (e.g., shown in Table 4) as output. Table 3 shows an example shipping option cost matrix.

TABLE 3 Origin Destination Weight Transit Days Distributor Zip class 7 6 5 4 3 2 1 1234 10603 10 6.1 6.3 6.5 6.7 8.7 9.5 15

Table 4 shows an example shipping option detail matrix.

TABLE 4 Origin Destination Weight Transit Days Distributor Zip class 7 6 5 4 3 2 1 1234 10603 10 FDX OnTrac FDX UPS FDX UPS UPS Smartpost Home Standard Ex- Ex- Rush Standard pedited pedited

A shipping option selection process in one embodiment of the present disclosure generates optimal pre-selection shipping option matrix, which may be used subsequently, for real time order shipping option selection. A shipping option pre-selection algorithm in one embodiment of the present disclosure minimizes shipping cost, for example, given origin, destination, and expected transit days.

The shipping option pre-selection component 202 in one embodiment may execute an algorithm for generating its output, e.g., the shipping option cost matrix and the shipping option detail matrix. An example algorithm the shipping option pre-selection component 202 in one embodiment may implement to generate the shipping option cost matrix is shown as follows:

For each distributor and destination zip code (or the like), do Find the distributor zip; For transit day = 1....n, do /* e.g., where n is 7 */ Set default winner carrier = initial-carrier-method; /* e.g., FDX Smartpost */ Set default winner shipment cost =9999999;/* e.g., or another default value */ For each carrier, do For each Shipping method Search Table 2, find the record with same carrier, shipping method, and Transit days, save the shipment zone; Search Table 1, find the record with the same shipping method, carrier, shipment zone, and weight, save the shipment cost; If shipment cost <= winner shipment cost, do winner carrier= new carrier + shipment method winner shipment cost=new shipment cost End If End For End For Update Table 3 with the winner shipment cost Update Table 4 with the winner carrier End For End For

FIG. 3 is a flow diagram illustrating a method in one embodiment of the present disclosure. At 302, postal address codes designating postal zones of geographical locations may be obtained, for example, from one or more storage devices that store such information.

At 304, carrier transit time data may be obtained from one or more of storage devices that store such information.

At 306, shipment rate cards may be obtained from one or more of storage devices that store such information.

At 308, based on the postal address codes, the carrier transit time data and the shipment rate cards, a shipping option cost matrix may be generated.

At 310, responsive to receiving order information, the generated shipping option cost matrix may be searched in real-time, for example, at the time an order request is received, to determine least costly delivery option. For instance, the order information may be received based on an online order received from a user on a web site page of an online purchasing or like system. The order information may include a scheduled fulfillment center, destination, expected delivery date and weight of a shipment. The order information such as the scheduled fulfillment center and expected delivery date, for example, may have been computed or determined based on one or more optimization methods employed by an order management system. The weight of the shipment may be determined from the ordered item information. For example, an optimizer running on one or more computers may calculate or determine the package weight, for example, based on node selection and item assignment information. Node selection determines a fulfillment channel in a fulfillment network, such as a store, a warehouse (distribution center), or another entity that may include product for distribution or sale.

At 312, a shipping option detail matrix comprising a specification of the shipping method and the carrier associated with the entry in the shipping option cost matrix may be generated.

At 314, the determined least costly delivery option may be provided over a network. For example, the order information may be received over the network from an order management system and the least costly delivery option is provided to the order management system. In one aspect, the least costly delivery option may be presented or displayed on a user interface display.

The display in one embodiment may include the carrier and shipping method detail information, for example, determined by searching the shipping option detail matrix based on the least costly delivery option. In one aspect, the order information is received based on an online order received from a user on a web site page. The least costly delivery option may be displayed on a user interface displaying the web site page.

In one aspect, the functionalities shown in FIG. 3 may be provided as SaaS, for example, by one or more hardware processors running in a computer environment comprising a shared pool of configurable computing resources, cloud based environment.

Yet, in another aspect, the method may include automatically causing shipment of the order via the least costly delivery option. The determination of the order fulfillment options along with the least cost delivery option may automatically invoke or initiate automatic picking, packing and shipping of one or more items associated with the order to its destination via the determined least cost delivery option.

FIGS. 4A-4B show a flow diagram illustrating a method of generating the shipping option cost matrix in one embodiment of the present disclosure. At 402, the processing at 404, 406, 408, 410, 412, 414, 416, 418, 420, and 422, and for example 424, may be performed for each distributor and destination postal address code combination. At 404, the distributor's postal address code is determined. At 406, the processing at 408, 410, 412, 414, 416, 418, 420, and 422, and for example 424, may be performed for each transit time in a set of predefined transit times. An example set of predefined transit times may be 1 to 7, for example, representing 7 days in a week. At 408, a candidate carrier is set or designated to an initial or default carrier. At 410, a candidate shipment cost is designated or set to an initial shipment cost. At 412, the processing at 414, 416, 418, 420, and 422, and for example 424, may be performed for each carrier. At 414, the processing at 416, 418, 420, and 422, and for example 424 may be performed for each shipping method. At 416, the carrier transit time data may be searched to determine a shipment zone associated with the carrier, the shipping method, and the transit time, and the shipment zone may be stored. At 418, the shipment rate cards may be searched to determine a shipment coast associated with the carrier, the shipping method, the shipping zone, and the weight, and the shipment cost may be stored. At 420, responsive to determining that the shipment cost is less than the candidate shipment cost, the candidate carrier may be reset to include the carrier and the shipping method, and the candidate shipment cost may be reset to the shipment cost. At 422, an entry in the shipping option cost matrix associated with the distributor's postal address code and destination postal address code combination, the weight and the transit time is updated to include the shipment cost. At 424, a shipping option detail matrix may be generated that includes a specification of the shipping method and the carrier associated with the entry in the shipping option cost matrix.

FIG. 5 illustrates system components of the present disclosure in one embodiment. A cloud-based system 502, may provide shipping option pre-selection functionality that generates a shipping option cost matrix, e.g., as described above. Such shipping option cost matrix may be generated and updated periodically, for example, based on data such as postal address code data, carrier transit days/period data, and shipment rate cards 504. The generated shipping option cost matrix may be transmitted to an order management system and retrieved by an order management system, for use in real-time in fulfilling an order. For example, an on-premise computer system running an order management system 506 may receive an order, for example, via a network from a customer or like user via a user device (e.g., 508, 510). The order management system 506, may retrieve the shipping option cost matrix, in real-time, and perform a lookup for the least costly shipping option for fulfilling the given order. For instance, the given order may include order information such as a scheduled fulfillment center, destination, expected delivery date and weight of a shipment. The shipping option cost matrix may be looked up for the entry matching the order information. The determined least costly shipping option may be presented on the user interface of one or more user devices 508, 510. In another aspect, the least costly shipping option may be stored in a computer generated file, in one or more tabular format.

The method and system of the present disclosure may be an integrated component of omni-channel fulfillment optimization system, for example, implemented at least in part as a cloud based system and/or application that allows for the transformation, for example, of the retail industry with big data analytics (e.g., predictive analytics) and optimization to drive flexible fulfillment, seamless inventory usage and effective use of stores. For example, the shipping option cost matrix of the present disclosure in one embodiment may be generated and used by an optimization order sourcing engine, for example, to minimize total cost-to-serve.

In one aspect, the omni-channel fulfillment optimization system may implement capabilities such as omni-channel performance analyzer, fulfillment and/or sourcing planner, and multi-objective fulfillment and/or sourcing optimizer. The omni-channel performance analyzer, in one aspect, may analyze and learn, and provide capabilities such as complex key performance indicator (KPI) computation, anomaly detection, causal performance analysis, and/or others. The omni channel performance analyzer, in one aspect, understands KPIs at a stock keeping unit (SKU)xNode level across a network nodes and SKU sets, may perform big-data analytics, report and perform KPI generation for a broad range of KPIs. The omni-channel performance analyzer, for example, may include automatic capabilities to understand omni-channel overage (e.g., understand excess inventory at the sku/node level to optimize on-line buying), to understand store operations (e.g., understand fulfillment patterns and improve effectiveness and efficiency of ship-from-store), peak operations (e.g., understand backlog patterns, order patterns), and to perform sales analysis (e.g., gain insights on sell through and margin at the SKU/node level, providing for example, cross enterprise visibility supports better decisions across multiple dimensions. Such automatic capabilities may be provided as an app (application), for example, implemented to run on one or more devices such as computers and mobile devices. In one aspect, the omni-channel performance analyzer may include multiple data analytics engines, for example, performing data analytics pattern recognition and causal analysis, producing metrics across stores, for example, including physical and online stores.

The fulfillment and/or sourcing planner, in one aspect, may predict and plan, and provide capabilities such as what-if analysis using big-data simulation and allow planning of sourcing network and/or policy. The fulfillment and/or sourcing planner, in one aspect, may build and utilize big-data discrete event simulation models that enable very fine grained “What-if” analysis enabling planning. The fulfillment and/or sourcing planner, also referred to as omni-channel sourcing network planer may include capabilities for network size selection (e.g., selecting the right number of stores for sourcing), peak planning (e.g., ensuring network can handle peak loads), inventory consolidation (e.g., reducing inventory by integrating different channels), and/or others. The fulfillment and/or sourcing planner, in one aspect, may include one or more simulation engines that may perform simulation at order x SKU x node level, for example, using network, sourcing rules, and optimization tradeoffs, and simulating real-world activity in real-time.

The multi-objective fulfillment and/or sourcing optimizer, in one aspect, may optimize and operate, and provide capabilities such as multi-objective optimization, for example, to minimize total cost to serve, for example, both at order and batch level. The multi-objective fulfillment and/or sourcing optimizer, in one aspect, may generate and utilize programming models for providing options for fulfilling an order in real time, for example, a large scale of orders in real time. The multi-objective fulfillment and/or sourcing optimizer, also referred to as an omni-channel sourcing optimizer may include capabilities such as markdown avoidance (e.g., target slow moving inventory across the store network with demand), peak load balancing (e.g., balancing fulfillment load across stores and distribution/fulfillment centers), shipping cost optimization (e.g., lowering cost of shipping), and/or store fulfillment optimization (e.g., optimize store operations by rewarding high performers with more orders). The multi-objective fulfillment and/or sourcing optimizer, in one aspect, may include multi-objective optimization engine performing optimization of on-line order sourcing to minimize total-cost-to-serve, for example, in real time.

The omni-channel fulfillment optimization system, in one aspect, may run on a cloud based system along with a big data platform, and may communicate in real time over a network with one or more on-premise systems, for example, integrating the service or capabilities of the omni-channel fulfillment optimization system with an order management system for an on-premises system. An order management system responsive to receiving an order may automatically create order, schedule order, release order, create shipment, pick, pack and ship the item for the order, for example, by integrating the functionalities of the omni-channel fulfillment optimization system. For example, the omni-channel fulfillment optimization system, for example, implemented as a service as a service (SaaS) may perform network level cost prediction and order level cost optimization, based on which, the order management system may automatically select one or more nodes, and shipment carrier and method for fulfilling the order, for example, including the shipment to the customer.

In one aspect, the system of the present disclosure employs an analytical and algorithmic approach minimize shipping cost to improving the solution quality and computation complexity of shipment optimization decisions executed on one or more processors by preselecting the optimal shipping methods and carrier. The system further provides a data processing work flow that optimizes shipping cost. Moreover, the system implements an algorithm that searches between the shipment rate cards and carrier transit days (time) data to generate an optimal shipping matrix. The generated shipping matrix includes preselected optimal shipping options that may be looked up in real-time, for example, rather than requiring user input for the shipping option look-up table. In one aspect, the preselected optimal shipping options facility the decision of shipping methods and carriers per shipment individually.

It is understood in advance that although this disclosure may include a description on cloud computing, implementation of the teachings recited herein are not limited to a cloud computing environment. Rather, embodiments of the present invention are capable of being implemented in conjunction with any other type of computing environment now known or later developed. Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

Characteristics are as follows:

On-demand self-service: a cloud consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with the service's provider.

Broad network access: capabilities are available over a network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling: the provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to demand. There is a sense of location independence in that the consumer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).

Rapid elasticity: capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale out and rapidly released to quickly scale in. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time.

Measured service: cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported providing transparency for both the provider and consumer of the utilized service.

Service Models are as follows:

Software as a Service (SaaS): the capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based e-mail). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

Platform as a Service (PaaS): the capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations.

Infrastructure as a Service (IaaS): the capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).

Deployment Models are as follows:

Private cloud: the cloud infrastructure is operated solely for an organization. It may be managed by the organization or a third party and may exist on-premises or off-premises.

Community cloud: the cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be managed by the organizations or a third party and may exist on-premises or off-premises.

Public cloud: the cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services.

Hybrid cloud: the cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load-balancing between clouds).

FIG. 6 illustrates a schematic of an example computer or processing system that may implement a system that generates shipping options and/or allows for selecting least costly shipping options in real-time based on a pre-selected shipping options specified in the generated shipping option matrix in one embodiment of the present disclosure. The computer system is only one example of a suitable processing system and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the methodology described herein. The processing system shown may be operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the processing system shown in FIG. 6 may include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.

The computer system may be described in the general context of computer system executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. The computer system may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.

The components of computer system may include, but are not limited to, one or more processors or processing units 12, a system memory 16, and a bus 14 that couples various system components including system memory 16 to processor 12. The processor 12 may include a module 10 that performs the methods described herein. The module 10 may be programmed into the integrated circuits of the processor 12, or loaded from memory 16, storage device 18, or network 24 or combinations thereof.

Bus 14 may represent one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus.

Computer system may include a variety of computer system readable media. Such media may be any available media that is accessible by computer system, and it may include both volatile and non-volatile media, removable and non-removable media.

System memory 16 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) and/or cache memory or others. Computer system may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 18 can be provided for reading from and writing to a non-removable, non-volatile magnetic media (e.g., a “hard drive”). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus 14 by one or more data media interfaces.

Computer system may also communicate with one or more external devices 26 such as a keyboard, a pointing device, a display 28, etc.; one or more devices that enable a user to interact with computer system; and/or any devices (e.g., network card, modem, etc.) that enable computer system to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interfaces 20.

Still yet, computer system can communicate with one or more networks 24 such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 22. As depicted, network adapter 22 communicates with the other components of computer system via bus 14. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system. Examples include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements, if any, in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. 

We claim:
 1. A method determining a shipping option in real time, the method performed by one or more hardware processors running in a computer environment comprising a shared pool of configurable computing resources, comprising: obtaining postal address codes designating postal zones from one or more storage devices; obtaining carrier transit time data from one or more of the storage devices; obtaining shipment rate cards from one or more of the storage devices; generating a shipping option cost matrix based on the postal address codes, the carrier transit time data and the shipment rate cards; responsive to receiving order information, searching the generated shipping option cost matrix to determine least costly delivery option, based on the order information, the order information comprising a scheduled fulfillment center, destination, expected delivery date and weight of a shipment; and providing the least costly delivery option over a network.
 2. The method of claim 1, wherein the order information is received based on an online order received from a user on a web site page.
 3. The method of claim 2, wherein the least costly delivery option is displayed on a user interface displaying the web site page.
 4. The method of claim 1, wherein the generating comprises: for each distributor and destination postal address code combination, determining a distributor's postal address code, for each transit time in a set of predefined transit times, designating a candidate carrier to an initial carrier; and designating a candidate shipment cost to an initial shipment cost; for each carrier, for each shipping method, searching the carrier transit time data to determine a shipment zone associated with the carrier, the shipping method, and the transit time, and storing the shipment zone; searching the shipment rate cards to determine a shipment coast associated with the carrier, the shipping method, the shipping zone, and the weight, and storing the shipment cost; responsive to determining that the shipment cost is less than the candidate shipment cost, resetting the candidate carrier to include the carrier and the shipping method, and resetting the candidate shipment cost to the shipment cost; updating an entry in the shipping option cost matrix associated with the distributor's postal address code and destination postal address code combination, the weight and the transit time, to include the shipment cost.
 5. The method of claim 4, further comprising: generating a shipping option detail matrix comprising a specification of the shipping method and the carrier associated with the entry in the shipping option cost matrix.
 6. The method of claim 1, wherein the method is provided as a software as a service.
 7. The method of claim 1, wherein the order information is received over the network from an order management system and the least costly delivery option is provided to the order management system, further comprising automatically causing shipment of the order via the least costly delivery option.
 8. A system, comprising: one or more hardware processors; and one or more storage devices operatively coupled to one or more of the hardware processors, one or more of the hardware processors operable to obtain postal address codes designating postal zones from one or more of the storage devices, one or more of the hardware processors operable to obtain carrier transit time data from one or more of the storage devices, one or more of the hardware processors operable to obtain shipment rate cards from one or more of the storage devices, one or more of the hardware processors operable to generate a shipping option cost matrix based on the postal address codes, the carrier transit time data and the shipment rate cards, responsive to receiving order information, one or more of the hardware processors operable to search the generated shipping option cost matrix to determine least costly delivery option, based on the order information, the order information comprising a scheduled fulfillment center, destination, expected delivery date and weight of a shipment, one or more of the hardware processors operable to provide over a network, the least costly delivery option.
 9. The system of claim 8, wherein the order information is received based on an online order received from a user on a web site page.
 10. The system of claim 9, wherein the least costly delivery option is displayed on a user interface displaying the web site page.
 11. The system of claim 8, wherein one or more of the hardware processors are operable to generate the shipping option cost matrix by: for each distributor and destination postal address code combination, determining a distributor's postal address code, for each transit time in a set of predefined transit times, designating a candidate carrier to an initial carrier; and designating a candidate shipment cost to an initial shipment cost; for each carrier, for each shipping method, searching the carrier transit time data to determine a shipment zone associated with the carrier, the shipping method, and the transit time, and storing the shipment zone; searching the shipment rate cards to determine a shipment coast associated with the carrier, the shipping method, the shipping zone, and the weight, and storing the shipment cost; responsive to determining that the shipment cost is less than the candidate shipment cost, resetting the candidate carrier to include the carrier and the shipping method, and resetting the candidate shipment cost to the shipment cost; updating an entry in the shipping option cost matrix associated with the distributor's postal address code and destination postal address code combination, the weight and the transit time, to include the shipment cost.
 12. The system of claim 11, wherein one or more of the hardware processors are further operable to generate a shipping option detail matrix comprising a specification of the shipping method and the carrier associated with the entry in the shipping option cost matrix.
 13. The system of claim 8, wherein one or more of the hardware processors run in a computer environment comprising a shared pool of configurable computing resources providing a software as a service platform.
 14. The system of claim 8, wherein the order information is received over the network from an order management system and the least costly delivery option is provided to the order management system.
 15. The system of claim 8, wherein one or more of the hardware processors automatically cause shipment of the order via the least costly delivery option.
 16. A computer readable storage medium storing a program of instructions executable by a machine to perform a method comprising: obtaining postal address codes designating postal zones from one or more storage devices; obtaining carrier transit time data from one or more of the storage devices; obtaining shipment rate cards from one or more of the storage devices; generating a shipping option cost matrix based on the postal address codes, the carrier transit time data and the shipment rate cards; responsive to receiving order information, searching the generated shipping option cost matrix to determine least costly delivery option, based on the order information, the order information comprising a scheduled fulfillment center, destination, expected delivery date and weight of a shipment; and providing over a network the least costly delivery option.
 17. The computer readable storage medium of claim 16, wherein the order information is received based on an online order received from a user on a web site page.
 18. The computer readable storage medium of claim 16, wherein the least costly delivery option is displayed on a user interface displaying the web site page.
 19. The computer readable storage medium of claim 16, wherein the generating comprises: for each distributor and destination postal address code combination, determining a distributor's postal address code, for each transit time in a set of predefined transit times, designating a candidate carrier to an initial carrier; and designating a candidate shipment cost to an initial shipment cost; for each carrier, for each shipping method, searching the carrier transit time data to determine a shipment zone associated with the carrier, the shipping method, and the transit time, and storing the shipment zone; searching the shipment rate cards to determine a shipment coast associated with the carrier, the shipping method, the shipping zone, and the weight, and storing the shipment cost; responsive to determining that the shipment cost is less than the candidate shipment cost, resetting the candidate carrier to include the carrier and the shipping method, and resetting the candidate shipment cost to the shipment cost; updating an entry in the shipping option cost matrix associated with the distributor's postal address code and destination postal address code combination, the weight and the transit time, to include the shipment cost.
 20. The computer readable storage medium of claim 19, further comprising: generating a shipping option detail matrix comprising a specification of the shipping method and the carrier associated with the entry in the shipping option cost matrix. 